<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        function Student(name){
            this.name=name;
        }
        var stu=new Student("alice");


        //js中任意数据的最高原型指向于Object.prototype
        // js中的数据都是基于Object.prototype为模板构建的
        // js中一个数据的原型的连续的关系，称为原型链
        console.log(stu.__proto__);
        console.log(Student.prototype);
        console.log(stu.__proto__===Student.prototype);
        console.log(Student.prototype.__proto__);
        console.log(Object.prototype);
        console.log(Student.prototype.__proto__===Object.prototype);
        console.log(Object.prototype.__proto__);
        var arrs=new  Array();

        // 原型链
        // stu-->Student.prototype-->Object.prototype-->null
        // arrs-->Array.prototype-->Object.prototype-->null

        //判断对象的类型
        console.log(typeof stu);
        console.log(typeof arrs);

        //使用instanceof来判断对象是否是某个类型
        console.log(stu instanceof Student);//true
        console.log(stu instanceof Array);//false
        console.log(stu instanceof Object);//true
        console.log(arrs instanceof Array);//true
        console.log(arrs instanceof Object);//true
        
        //构造函数的名称就是对象类型的名称
        console.log(stu.constructor.name);
    </script>
</head>
<body>
    
</body>
</html>